﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            OneDimentionArray();
        }


        //my methods

        static void OneDimentionArray()
        {
            int[] intArray = new int[3] { 1, 2, 3 };
            
            for (int i=0; i<3; i++)
            {
                Console.WriteLine("[{0}]", i);
                intArray[i] = Int32.Parse(Console.ReadLine());
            }
            Console.WriteLine("Элементы массива intArray: ");

            //for (int i = 0; i < 3; i++)
            //{
            //    Console.WriteLine(intArray[i]);
            //}

            //Console.WriteLine();
            foreach (var exp in intArray)
            {
                Console.WriteLine(exp);
            }

        }

        static void AmebasMultiplier()
        {
            Console.Title = "Отряд амеб готов к захвату мира, повелитель";
            int amebas = 1;
            int h;
            for (h = 3; h <= 24; h += 3)
            {
                amebas = amebas * 2;
                Console.WriteLine("Через {0} часа амеб будет {1}", h, amebas);
            }
        }

        static void NumbersDividedByThreeNotFive()
        {
            Console.Title = "Деление чисел";
            Console.WriteLine("Эти числа от 20 до 50 делятся не 3 но не делятся на 5:");
            for (int i = 20; i <= 50; i++)
            {
                if ((i % 3 == 0) && (i % 5 != 0))
                {

                    Console.Write(i + " ");
                }
            }
            Console.WriteLine();
        }

        static void BankDeposite()
        {
            double money;
            int years;
            double depositePercent = 0.03;


            Console.WriteLine("Введите сумму вклада");
            money = Double.Parse(Console.ReadLine());
            Console.WriteLine("Введите срок депонирования (в годах)");
            years = Int32.Parse(Console.ReadLine());

            money = money * (1 + depositePercent * years);

            Console.WriteLine("Сумма вклада через {0} лет составит до {1}", years, money);

        }

        static void TaskSwitcher()
        {
            string cont;
            do
            {
                Console.Write("Выберите задачу для решения 1/2/3/4/5/6/7\n" +
                    "1 - Задача про все положительные двузначные числа кратные пяти\n" +
                    "2 - Задача про счетчик положительных, отрицательных и нулей\n" +
                    "3 - Задача про определение количества разрядов числа и макс/мин разряда\n" +
                    "4 - Задача про квадраты чисел от 10 до 20 включительно\n" +
                    "5 - Задача про максимальное число из 5\n" +
                    "6 - Задача про банковский депозит\n" +
                    "7 - Задача про числа, которые делятся на 3 и не делятся на 5\n" +
                    "8 - Задача про завоевание мира амёбами\n");
                string choiceTask = Console.ReadLine();
                switch (choiceTask)
                {
                    case "1":
                        Console.WriteLine("Выбрана задача про все положительные двузначные числа кратные пяти");
                        DividedByFive();
                        break;
                    case "2":
                        Console.WriteLine("Выбрана задача про счетчик положительных, отрицательных и нулей");
                        PosNegCounter();
                        break;
                    case "3":
                        Console.WriteLine("Выбрана задача про определение количества разрядов числа и макс/мин разряда");
                        NumberDigitsCompare();
                        break;
                    case "4":
                        Console.WriteLine("Выбрана задача про квадраты чисел от 10 до 20 включительно");
                        NumbersSquaresCount();
                        break;
                    case "5":
                        Console.WriteLine("Выбрана задача про максимальное число из 5");
                        MaxMinNumbers();
                        break;
                    case "6":
                        Console.WriteLine("Выбрана задача про банковский депозит");
                        BankDeposite();
                        break;
                    case "7":
                        Console.WriteLine("Выбрана задача про числа, которые делятся на 3 и не делятся на 5");
                        NumbersDividedByThreeNotFive();
                        break;
                    case "8":
                        Console.WriteLine("Выбрана задача про завоевание мира амёбами");
                        AmebasMultiplier();
                        break;
                    default:
                        Console.WriteLine("Неверный ввод");
                        break;
                }
                Console.WriteLine("решить ещё одну задачу y/n");
                cont = Console.ReadLine().ToLower();
                Console.Clear();
            } while (cont == "y");
        }

        static void MaxMinNumbers()
        {
            int i;
            int max;
            int compare;

            Console.WriteLine("Введите число");
            compare = Int32.Parse(Console.ReadLine());
            max = compare;

            for (i = 0; i < 4; i++)
            {
                Console.WriteLine("Введите число");
                compare = Int32.Parse(Console.ReadLine());

                if (compare > max)
                {
                    max = compare;
                }
            }

            Console.WriteLine("Максимальное число равно {0}", max);
        }

        static void NumbersSquaresCount()
        {
            int number = 1;
            for (int i = 10; i <= 20; i++)
            {
                number = i * i;
                Console.WriteLine("Квадраат {0} равен {1}", i, number);
            }

        }

        static void NumberDigitsCompare()
        {
            int i = 0;
            int number;
            int toCompare;
            int theTop = 0;
            int theBottom = 10;

            Console.WriteLine("Введите число");
            number = Int32.Parse(Console.ReadLine());
            do
            {
                toCompare = number % 10;
                i++;
                number = number / 10;
                if (toCompare > theTop)
                {
                    theTop = toCompare;
                }
                else if (toCompare < theBottom)
                {
                    theBottom = toCompare;
                }
            } while (number > 0);
            Console.WriteLine("Число разрядов в числе {0}", i);
            Console.WriteLine("Максимальное число из позиций числа = {0}", theTop);
            Console.WriteLine("Максимальное число из позиций числа = {0}", theBottom);
        }

        static void NumberDigitsChecker()
        {
            int i = 0;
            int number;
            Console.WriteLine("Введите число");
            number = Int32.Parse(Console.ReadLine());
            do
            {
                number = number / 10;
                i++;
            } while (number > 0);
            Console.WriteLine("Число разрядов в числе {0}", i);
        }

        static void PosNegCounter()
        {
            int number;
            int i;
            int positiveNumber = 0;
            int negativeNumber = 0;
            int nullNumber = 0;
            Console.WriteLine("Введите количество чисел");
            i = Int32.Parse(Console.ReadLine());
            do
            {
                Console.WriteLine("Введите число");
                number = Int32.Parse(Console.ReadLine());
                i--;
                if (number > 0)
                {
                    positiveNumber++;
                }
                else if (number < 0)
                {
                    negativeNumber++;
                }
                else
                {
                    nullNumber++;
                }

            } while (i > 0);
            Console.WriteLine("Количество положительных {0}", positiveNumber);
            Console.WriteLine("Количество отрицательных {0}", negativeNumber);
            Console.WriteLine("Количество нулей {0}", nullNumber);
        }


        static void DividedByFive()

        {
            int i;
            for (i = 10; i < 100; i++)
            {
                if (i % 5 == 0)
                {
                    Console.WriteLine(i);
                }
            }


        }
    }
}
